在股票投資中,除了觀察公司的基本面(EPS、PE、殖利率),很多投資人也會參考 技術面分析,試著從價格與成交量的變化,找出股價的趨勢與買賣時機。今天我們來介紹兩個最常見的技術指標: MA(移動平均線) 和 RSI(相對強弱指標)。
技術面分析的核心假設是:「市場的所有資訊,都已經反映在股價上」。
因此,只要研究股價與成交量的變化,就能幫助投資人判斷 趨勢 與 可能的反轉點。
常見技術分析工具包括:
趨勢線與型態學(頭肩頂、三角收斂)
各種技術指標(MA、RSI、MACD、布林通道等)
成交量觀察
今天先專注在 MA 和 RSI,這兩個是新手最容易上手的工具。
移動平均線(Moving Average, MA)是將股價在某一段時間的平均數畫出來,幫助投資人看清楚趨勢,去除短期雜訊。
短期均線(5日、10日):敏感,適合觀察短線趨勢。
中期均線(20日、60日):觀察中期方向。
長期均線(120日、240日):大趨勢的方向。
均線黃金交叉:短期均線向上突破長期均線 → 上漲趨勢訊號。
均線死亡交叉:短期均線向下跌破長期均線 → 下跌趨勢訊號。
RSI(Relative Strength Index)是一種動能指標,用來衡量股價「漲勢」與「跌勢」的相對強度。
公式大意:
𝑅𝑆𝐼 =100 − 100/1+𝑅𝑆
其中 RS = 平均漲幅 ÷ 平均跌幅。
RSI > 70:股價可能過熱,短期有回檔壓力。
RSI < 30:股價可能超跌,短期有反彈機會。
40–60 區間:盤整整理。
RSI 並不是絕對買賣訊號,若股價長期強勢,RSI 可能一直維持在高檔。要搭配趨勢判斷。
接下來我們用 Python + yfinance,實際計算 MA 和 RSI。
以下以 台積電 ADR(TSM) 為例:
python
import yfinance as yf
import pandas as pd
# 下載台積電ADR的歷史股價
stock = yf.download("TSM", start="2023-01-01", end="2025-01-01")
# 計算移動平均線 (MA)
stock["MA20"] = stock["Close"].rolling(window=20).mean() # 20日均線
stock["MA60"] = stock["Close"].rolling(window=60).mean() # 60日均線
# 計算 RSI
def compute_RSI(data, window=14):
delta = data["Close"].diff()
gain = delta.where(delta > 0, 0)
loss = -delta.where(delta < 0, 0)
avg_gain = gain.rolling(window=window).mean()
avg_loss = loss.rolling(window=window).mean()
rs = avg_gain / avg_loss
rsi = 100 - (100 / (1 + rs))
return rsi
stock["RSI14"] = compute_RSI(stock, 14)
# 顯示最近幾筆數據
print(stock[["Close", "MA20", "MA60", "RSI14"]].tail(10))
輸出結果:
MA20 與 MA60 幫助我們判斷中短期趨勢。
RSI14 則用來觀察是否進入超買或超賣區。
MA 幫助我們看趨勢,不要被短期波動影響。
RSI 幫助我們判斷市場情緒,避免追高殺低。
技術指標不該單獨使用,要搭配基本面、成交量與市場趨勢綜合判斷。
👉 明天(Day 7),在掌握 MA 與 RSI 之後,明天我們將繼續探索更進階的技術指標 —— MACD 與 KD,看看它們如何幫助投資人抓住買賣轉折點,並搭配 Python 實作實際應用!